function mxCellTracker(graph, color, funct)
{
	mxCellMarker.call(this, graph, color);
	this.graph.addMouseListener(this);

	if (funct != null)
	{
		this.getCell = funct;
	}

	if (mxClient.IS_IE)
	{
		var self = this;
		mxEvent.addListener(window, 'unload', function()
		{
			self.destroy();
		});
	}
};
mxCellTracker.prototype = new mxCellMarker();
mxCellTracker.prototype.constructor = mxCellTracker;
mxCellTracker.prototype.mouseDown = function(sender, me)
{
};

mxCellTracker.prototype.mouseMove = function(sender, me)
{
	if (this.isEnabled())
	{
		this.process(me);
	}
};
mxCellTracker.prototype.mouseUp = function(sender, me)
{
	this.reset();
};
mxCellTracker.prototype.destroy = function()
{
	if (!this.destroyed)
	{
		this.destroyed = true;
		this.graph.removeMouseListener(this);
		mxCellMarker.prototype.destroy.apply(this);
	}
};